/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upn.sigemfi.can.beans;

import edu.upn.sigemfi.can.bc.TipoDocumentoDelegate;
import edu.upn.sigemfi.can.be.TipoDocumento;
import java.util.List;
import javax.faces.model.SelectItem;

/**
 *
 * @author Orlando ( U )
 */
public class TipoDocumentoController extends AbstractController{

    private TipoDocumentoDelegate delegado;
    private TipoDocumento tipoDocumento;

    private SelectItem[] documentos;


    
    public TipoDocumentoController() {

        delegado = new TipoDocumentoDelegate();
        docus();
        docus();
    }

    public SelectItem[] getDocumentos() {
        return documentos;
    }

    public void setDocumentos(SelectItem[] documentos) {
        this.documentos = documentos;
    }

    public List<TipoDocumento> getTiposDocumentos() {
        try {
            return delegado.listar();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public String nuevo() {
        tipoDocumento = new TipoDocumento();
        return "nuevo";
    }

    public String editar() {
        return "editartipodocumento";
    }

 public String registrar() {
        try {
            delegado.crear(tipoDocumento);
            info("El Tipo de Documento se registró correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }

    public String actualizar() {
        try {
            delegado.editar(tipoDocumento);
            info("El Tipo de Documento se actualizó correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }

    public String eliminar() {
        try {
            delegado.eliminar(tipoDocumento);
            info("El Tipo de Documento se eliminó correctamente");
        } catch (Exception e) {
            error(e.getMessage());
        }
        return "volver";
    }


    public TipoDocumento getTipoDocumento() {
        return tipoDocumento;
    }

    public void setTipoDocumento(TipoDocumento tipoDocumento) {
        this.tipoDocumento = tipoDocumento;
    }

    public void docus() {
        documentos = null;
        try {
            List<TipoDocumento> lista = delegado.listar();
            if (lista != null) {
                documentos = new SelectItem[lista.size()];
                int i = 0;
            
                for (TipoDocumento m : lista) {
                    documentos[i++] = new SelectItem(m, m.getNombreTipoDocumento());
                }
            } else {
                documentos = new SelectItem[1];
                documentos[0] = new SelectItem(null, "No existen Documentos");
            }
        } catch (Exception e) {

        documentos = new SelectItem[1];
        documentos[0] = new SelectItem(null, "<<Hubo un error>>" + e.getMessage());
        }
    }
}
